<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>dinic: Referencia del Archivo uthash.h</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generado por Doxygen 1.6.3 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Buscar');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Página&nbsp;principal</span></a></li>
      <li><a href="annotated.html"><span>Estructuras&nbsp;de&nbsp;Datos</span></a></li>
      <li class="current"><a href="files.html"><span>Archivos</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <img id="MSearchSelect" src="search/search.png"
             onmouseover="return searchBox.OnSearchSelectShow()"
             onmouseout="return searchBox.OnSearchSelectHide()"
             alt=""/>
        <input type="text" id="MSearchField" value="Buscar" accesskey="S"
             onfocus="searchBox.OnSearchFieldFocus(true)" 
             onblur="searchBox.OnSearchFieldFocus(false)" 
             onkeyup="searchBox.OnSearchFieldChange(event)"/>
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
        </div>
      </li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>Lista&nbsp;de&nbsp;archivos</span></a></li>
      <li><a href="globals.html"><span>Globales</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Referencia del Archivo uthash.h</h1>
<p>&lt; Un hashtable que son todos macros &gt;  
<a href="#_details">Más...</a></p>
<code>#include &lt;string.h&gt;</code><br/>
<code>#include &lt;stddef.h&gt;</code><br/>
<code>#include &lt;inttypes.h&gt;</code><br/>

<p><a href="uthash_8h_source.html">Ir al código fuente de este archivo.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Estructuras de datos</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__bucket.html">UT_hash_bucket</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__table.html">UT_hash_table</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUT__hash__handle.html">UT_hash_handle</a></td></tr>
<tr><td colspan="2"><h2>Definiciones</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a716ba290563c2d955cb0c90d85874073">DECLTYPE</a>(x)&nbsp;&nbsp;&nbsp;(__typeof(x))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a3c736f2f2dd643f2987b2bc323e269ba">DECLTYPE_ASSIGN</a>(dst, src)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#aa56cef9cb86dc1f4b5d27ee3a691077e">UTHASH_VERSION</a>&nbsp;&nbsp;&nbsp;1.9.3</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a03b52301b0ed976b6981ef33613320c1">uthash_fatal</a>(msg)&nbsp;&nbsp;&nbsp;exit(-1)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a861013aff36c0448f1888a2b0b5836d8">uthash_malloc</a>(sz)&nbsp;&nbsp;&nbsp;malloc(sz)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a56cdf8c254fc700332c8e6a7263b4657">uthash_free</a>(ptr, sz)&nbsp;&nbsp;&nbsp;free(ptr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a7cc237d8f87de3836b5390856cfc5c86">uthash_noexpand_fyi</a>(tbl)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a86ea78714da520989a6f7a764b4d71b4">uthash_expand_fyi</a>(tbl)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a361cdc5e8d6d8fe5fae6912588ae15d0">HASH_INITIAL_NUM_BUCKETS</a>&nbsp;&nbsp;&nbsp;32</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a0b39a5cf1d6c05c43bd8530db2ec908c">HASH_INITIAL_NUM_BUCKETS_LOG2</a>&nbsp;&nbsp;&nbsp;5</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a8ae3e6473261f6c4b78c030c94f5d68f">HASH_BKT_CAPACITY_THRESH</a>&nbsp;&nbsp;&nbsp;10</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a568e95048979b8b3e4ea1567fd91c186">ELMT_FROM_HH</a>(tbl, hhp)&nbsp;&nbsp;&nbsp;((void*)(((char*)(hhp)) - ((tbl)-&gt;hho)))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#ad4a1cd39c3044936c0e49d3f372c9dbf">HASH_FIND</a>(hh, head, keyptr, keylen, out)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a254f427772a1fe7a2480a8302af8f8b8">HASH_BLOOM_MAKE</a>(tbl)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#ad6847ad938fc26bfd0726d7f159efd0a">HASH_BLOOM_FREE</a>(tbl)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#acaad947212056cd8bfe3d660265fb2db">HASH_BLOOM_ADD</a>(tbl, hashv)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a06bfbf880899d54da35487d0d39c1009">HASH_BLOOM_TEST</a>(tbl, hashv)&nbsp;&nbsp;&nbsp;(1)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#aeba971430f623b6334f565d9c7ec9de5">HASH_MAKE_TABLE</a>(hh, head)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#aaf01358e257c8d838eb5e4b189f0c399">HASH_ADD</a>(hh, head, fieldname, keylen_in, add)&nbsp;&nbsp;&nbsp;HASH_ADD_KEYPTR(hh,head,&amp;add-&gt;fieldname,keylen_in,add)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a0b7468360b5c788762cdb2ccf9cd4d26">HASH_ADD_KEYPTR</a>(hh, head, keyptr, keylen_in, add)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a4d7691544128a6ef265f3e4fa5ed3113">HASH_TO_BKT</a>(hashv, num_bkts, bkt)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a3f83117e1108d63844a58d2d79c3b980">HASH_DELETE</a>(hh, head, delptr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a214529083adfab2fa8cd402d2eeb0a84">HASH_FIND_STR</a>(head, findstr, out)&nbsp;&nbsp;&nbsp;HASH_FIND(hh,head,findstr,strlen(findstr),out)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a9724951736f3985f74df17638c8a7885">HASH_ADD_STR</a>(head, strfield, add)&nbsp;&nbsp;&nbsp;HASH_ADD(hh,head,strfield,strlen(add-&gt;strfield),add)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#aadcb19b940348f3141bd51505ede0142">HASH_FIND_INT</a>(head, findint, out)&nbsp;&nbsp;&nbsp;HASH_FIND(hh,head,findint,sizeof(int),out)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#acf85835471af894e354efb7e346698f3">HASH_ADD_INT</a>(head, intfield, add)&nbsp;&nbsp;&nbsp;HASH_ADD(hh,head,intfield,sizeof(int),add)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a26a887f8e31952034becac0cf446f6c3">HASH_FIND_PTR</a>(head, findptr, out)&nbsp;&nbsp;&nbsp;HASH_FIND(hh,head,findptr,sizeof(void *),out)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a2ad1f84ef1ba9df99fa2ada38cb61823">HASH_ADD_PTR</a>(head, ptrfield, add)&nbsp;&nbsp;&nbsp;HASH_ADD(hh,head,ptrfield,sizeof(void *),add)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a48b7ed374602dcb236501aa23a971f05">HASH_DEL</a>(head, delptr)&nbsp;&nbsp;&nbsp;HASH_DELETE(hh,head,delptr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a7d882fadb26a4e6c13c134d8be4d0759">HASH_FSCK</a>(hh, head)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a44f9d46e2cc79652492e5dd3e6c40a15">HASH_EMIT_KEY</a>(hh, head, keyptr, fieldlen)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#abd3356419b386c379116393700a751d3">HASH_FCN</a>&nbsp;&nbsp;&nbsp;HASH_JEN</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a7271bf51d7fe2cf2c183578aee73601e">HASH_BER</a>(key, keylen, num_bkts, hashv, bkt)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#aa4cb140b45415e7bf57237525388af79">HASH_SAX</a>(key, keylen, num_bkts, hashv, bkt)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#ac99f9a353421537527a80b392089dd9d">HASH_FNV</a>(key, keylen, num_bkts, hashv, bkt)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#abc7040b698211c1993441fb4165fa0b4">HASH_OAT</a>(key, keylen, num_bkts, hashv, bkt)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a6d37144e54d2bd49eb88fbfd04c59dc5">HASH_JEN_MIX</a>(a, b, c)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#aa16e3ae6125d7f10d3deb4695e0ee51e">HASH_JEN</a>(key, keylen, num_bkts, hashv, bkt)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#abc7d71657be8975a51684e41029b7964">get16bits</a>(d)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#ab595698a74642684dace0dfa47dab445">HASH_SFH</a>(key, keylen, num_bkts, hashv, bkt)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a35c9b682ebb7a8cbf284b9f0a9594095">HASH_KEYCMP</a>(a, b, len)&nbsp;&nbsp;&nbsp;memcmp(a,b,len)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a42ae87cc63106a82601808f19329502c">HASH_FIND_IN_BKT</a>(tbl, hh, head, keyptr, keylen_in, out)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a78e11adee321f45c5cb31ff2d6eb0348">HASH_ADD_TO_BKT</a>(head, addhh)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a1b2d6f694f98cf6350cdd18225cb3f78">HASH_DEL_IN_BKT</a>(hh, head, hh_del)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a6439fd6271474e61b1840fbf83132f03">HASH_EXPAND_BUCKETS</a>(tbl)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a88d2ab40956878caacd02c214f7e8f15">HASH_SORT</a>(head, cmpfcn)&nbsp;&nbsp;&nbsp;HASH_SRT(hh,head,cmpfcn)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a388b4071dcff005154f431d3d3025fbd">HASH_SRT</a>(hh, head, cmpfcn)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#ad190366f7a476ece79bd628240a5fc93">HASH_SELECT</a>(hh_dst, dst, hh_src, src, cond)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a0512b3f7a824275579ec82643ef2cc23">HASH_CLEAR</a>(hh, head)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a4d524042f1fcb976d8bccae9e4cc63d6">HASH_ITER</a>(hh, head, el, tmp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a7d3edf55a3ee4da1a0e1b477c314342f">HASH_COUNT</a>(head)&nbsp;&nbsp;&nbsp;HASH_CNT(hh,head)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a6ea9e661cd8c35eff1fdcd5731127edd">HASH_CNT</a>(hh, head)&nbsp;&nbsp;&nbsp;((head)?((head)-&gt;hh.tbl-&gt;num_items):0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a4a7a46b9b92a9c73e4f9321e8e6b6bb2">HASH_SIGNATURE</a>&nbsp;&nbsp;&nbsp;0xa0111fe1</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a18a33f4269f05c1e81ce54edbc0ffca6">HASH_BLOOM_SIGNATURE</a>&nbsp;&nbsp;&nbsp;0xb12220f2</td></tr>
<tr><td colspan="2"><h2>Tipos definidos</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structUT__hash__bucket.html">UT_hash_bucket</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a3ba3da0ca59a082c35a0d6b52e803ddf">UT_hash_bucket</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structUT__hash__table.html">UT_hash_table</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a0758074b9942c2ad076610b3e0ce548e">UT_hash_table</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structUT__hash__handle.html">UT_hash_handle</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="uthash_8h.html#a0e3a99ed9f776349720d0c362f956fb6">UT_hash_handle</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Descripción detallada</h2>
<p>&lt; Un hashtable que son todos macros &gt; </p>
<hr/><h2>Documentación de las definiciones</h2>
<a class="anchor" id="a716ba290563c2d955cb0c90d85874073"></a><!-- doxytag: member="uthash.h::DECLTYPE" ref="a716ba290563c2d955cb0c90d85874073" args="(x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECLTYPE</td>
          <td>(</td>
          <td class="paramtype">x&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;(__typeof(x))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a3c736f2f2dd643f2987b2bc323e269ba"></a><!-- doxytag: member="uthash.h::DECLTYPE_ASSIGN" ref="a3c736f2f2dd643f2987b2bc323e269ba" args="(dst, src)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECLTYPE_ASSIGN</td>
          <td>(</td>
          <td class="paramtype">dst, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">src&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                                                                             \
  (dst) = <a class="code" href="uthash_8h.html#a716ba290563c2d955cb0c90d85874073">DECLTYPE</a>(dst)(src);                                                    \
} <span class="keywordflow">while</span>(0)
</pre></div>
</div>
</div>
<a class="anchor" id="a568e95048979b8b3e4ea1567fd91c186"></a><!-- doxytag: member="uthash.h::ELMT_FROM_HH" ref="a568e95048979b8b3e4ea1567fd91c186" args="(tbl, hhp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ELMT_FROM_HH</td>
          <td>(</td>
          <td class="paramtype">tbl, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">hhp&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;((void*)(((char*)(hhp)) - ((tbl)-&gt;hho)))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="abc7d71657be8975a51684e41029b7964"></a><!-- doxytag: member="uthash.h::get16bits" ref="abc7d71657be8975a51684e41029b7964" args="(d)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define get16bits</td>
          <td>(</td>
          <td class="paramtype">d&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Valor:</b><div class="fragment"><pre class="fragment">((((uint32_t)(((<span class="keyword">const</span> uint8_t *)(d))[1])) &lt;&lt; 8)             \
                       +(uint32_t)(((<span class="keyword">const</span> uint8_t *)(d))[0]) )
</pre></div>
</div>
</div>
<a class="anchor" id="aaf01358e257c8d838eb5e4b189f0c399"></a><!-- doxytag: member="uthash.h::HASH_ADD" ref="aaf01358e257c8d838eb5e4b189f0c399" args="(hh, head, fieldname, keylen_in, add)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_ADD</td>
          <td>(</td>
          <td class="paramtype">hh, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">fieldname, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">keylen_in, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">add&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;HASH_ADD_KEYPTR(hh,head,&amp;add-&gt;fieldname,keylen_in,add)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="acf85835471af894e354efb7e346698f3"></a><!-- doxytag: member="uthash.h::HASH_ADD_INT" ref="acf85835471af894e354efb7e346698f3" args="(head, intfield, add)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_ADD_INT</td>
          <td>(</td>
          <td class="paramtype">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">intfield, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">add&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;HASH_ADD(hh,head,intfield,sizeof(int),add)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a0b7468360b5c788762cdb2ccf9cd4d26"></a><!-- doxytag: member="uthash.h::HASH_ADD_KEYPTR" ref="a0b7468360b5c788762cdb2ccf9cd4d26" args="(hh, head, keyptr, keylen_in, add)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_ADD_KEYPTR</td>
          <td>(</td>
          <td class="paramtype">hh, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">keyptr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">keylen_in, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">add&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                                                                             \
 <span class="keywordtype">unsigned</span> _ha_bkt;                                                               \
 (add)-&gt;hh.next = NULL;                                                          \
 (add)-&gt;hh.key = (<span class="keywordtype">char</span>*)keyptr;                                                  \
 (add)-&gt;hh.keylen = keylen_in;                                                   \
 if (!(head)) {                                                                  \
    head = (add);                                                                \
    (head)-&gt;hh.prev = NULL;                                                      \
    <a class="code" href="uthash_8h.html#aeba971430f623b6334f565d9c7ec9de5">HASH_MAKE_TABLE</a>(hh,head);                                                    \
 } <span class="keywordflow">else</span> {                                                                        \
    (head)-&gt;hh.tbl-&gt;tail-&gt;next = (add);                                          \
    (add)-&gt;hh.prev = <a class="code" href="uthash_8h.html#a568e95048979b8b3e4ea1567fd91c186">ELMT_FROM_HH</a>((head)-&gt;hh.tbl, (head)-&gt;hh.tbl-&gt;tail);         \
    (head)-&gt;hh.tbl-&gt;tail = &amp;((add)-&gt;hh);                                         \
 }                                                                               \
 (head)-&gt;hh.tbl-&gt;num_items++;                                                    \
 (add)-&gt;hh.tbl = (head)-&gt;hh.tbl;                                                 \
 <a class="code" href="uthash_8h.html#abd3356419b386c379116393700a751d3">HASH_FCN</a>(keyptr,keylen_in, (head)-&gt;hh.tbl-&gt;num_buckets,                         \
         (add)-&gt;hh.hashv, _ha_bkt);                                              \
 <a class="code" href="uthash_8h.html#a78e11adee321f45c5cb31ff2d6eb0348">HASH_ADD_TO_BKT</a>((head)-&gt;hh.tbl-&gt;buckets[_ha_bkt],&amp;(add)-&gt;hh);                   \
 <a class="code" href="uthash_8h.html#acaad947212056cd8bfe3d660265fb2db">HASH_BLOOM_ADD</a>((head)-&gt;hh.tbl,(add)-&gt;hh.hashv);                                 \
 <a class="code" href="uthash_8h.html#a44f9d46e2cc79652492e5dd3e6c40a15">HASH_EMIT_KEY</a>(hh,head,keyptr,keylen_in);                                        \
 <a class="code" href="uthash_8h.html#a7d882fadb26a4e6c13c134d8be4d0759">HASH_FSCK</a>(hh,head);                                                             \
} <span class="keywordflow">while</span>(0)
</pre></div>
</div>
</div>
<a class="anchor" id="a2ad1f84ef1ba9df99fa2ada38cb61823"></a><!-- doxytag: member="uthash.h::HASH_ADD_PTR" ref="a2ad1f84ef1ba9df99fa2ada38cb61823" args="(head, ptrfield, add)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_ADD_PTR</td>
          <td>(</td>
          <td class="paramtype">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ptrfield, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">add&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;HASH_ADD(hh,head,ptrfield,sizeof(void *),add)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a9724951736f3985f74df17638c8a7885"></a><!-- doxytag: member="uthash.h::HASH_ADD_STR" ref="a9724951736f3985f74df17638c8a7885" args="(head, strfield, add)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_ADD_STR</td>
          <td>(</td>
          <td class="paramtype">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">strfield, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">add&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;HASH_ADD(hh,head,strfield,strlen(add-&gt;strfield),add)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a78e11adee321f45c5cb31ff2d6eb0348"></a><!-- doxytag: member="uthash.h::HASH_ADD_TO_BKT" ref="a78e11adee321f45c5cb31ff2d6eb0348" args="(head, addhh)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_ADD_TO_BKT</td>
          <td>(</td>
          <td class="paramtype">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">addhh&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                                                                             \
 head.count++;                                                                   \
 (addhh)-&gt;<a class="code" href="structUT__hash__handle.html#a4f6989385499ba6f594b0f0facd28325">hh_next</a> = head.hh_head;                                                \
 (addhh)-&gt;<a class="code" href="structUT__hash__handle.html#a3ec03e34d7975d5c1981c44b324619b2">hh_prev</a> = NULL;                                                        \
 <span class="keywordflow">if</span> (head.hh_head) { (head).hh_head-&gt;<a class="code" href="structUT__hash__handle.html#a3ec03e34d7975d5c1981c44b324619b2">hh_prev</a> = (addhh); }                        \
 (head).hh_head=addhh;                                                           \
 <span class="keywordflow">if</span> (head.count &gt;= ((head.expand_mult+1) * <a class="code" href="uthash_8h.html#a8ae3e6473261f6c4b78c030c94f5d68f">HASH_BKT_CAPACITY_THRESH</a>)             \
     &amp;&amp; (addhh)-&gt;tbl-&gt;noexpand != 1) {                                           \
       <a class="code" href="uthash_8h.html#a6439fd6271474e61b1840fbf83132f03">HASH_EXPAND_BUCKETS</a>((addhh)-&gt;<a class="code" href="structUT__hash__handle.html#ad2035ee3b2aa55b22e352341372a5e73">tbl</a>);                                        \
 }                                                                               \
} <span class="keywordflow">while</span>(0)
</pre></div>
</div>
</div>
<a class="anchor" id="a7271bf51d7fe2cf2c183578aee73601e"></a><!-- doxytag: member="uthash.h::HASH_BER" ref="a7271bf51d7fe2cf2c183578aee73601e" args="(key, keylen, num_bkts, hashv, bkt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_BER</td>
          <td>(</td>
          <td class="paramtype">key, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">keylen, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">num_bkts, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">hashv, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bkt&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                                                                             \
  <span class="keywordtype">unsigned</span> _hb_keylen=<a class="code" href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">keylen</a>;                                                    \
  <span class="keywordtype">char</span> *_hb_key=(<span class="keywordtype">char</span>*)(<a class="code" href="structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d">key</a>);                                                    \
  (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a>) = 0;                                                                   \
  <span class="keywordflow">while</span> (_hb_keylen--)  { (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a>) = ((<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a>) * 33) + *_hb_key++; }               \
  bkt = (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a>) &amp; (num_bkts-1);                                                  \
} <span class="keywordflow">while</span> (0)
</pre></div>
</div>
</div>
<a class="anchor" id="a8ae3e6473261f6c4b78c030c94f5d68f"></a><!-- doxytag: member="uthash.h::HASH_BKT_CAPACITY_THRESH" ref="a8ae3e6473261f6c4b78c030c94f5d68f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_BKT_CAPACITY_THRESH&nbsp;&nbsp;&nbsp;10</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="acaad947212056cd8bfe3d660265fb2db"></a><!-- doxytag: member="uthash.h::HASH_BLOOM_ADD" ref="acaad947212056cd8bfe3d660265fb2db" args="(tbl, hashv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_BLOOM_ADD</td>
          <td>(</td>
          <td class="paramtype">tbl, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">hashv&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ad6847ad938fc26bfd0726d7f159efd0a"></a><!-- doxytag: member="uthash.h::HASH_BLOOM_FREE" ref="ad6847ad938fc26bfd0726d7f159efd0a" args="(tbl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_BLOOM_FREE</td>
          <td>(</td>
          <td class="paramtype">tbl&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a254f427772a1fe7a2480a8302af8f8b8"></a><!-- doxytag: member="uthash.h::HASH_BLOOM_MAKE" ref="a254f427772a1fe7a2480a8302af8f8b8" args="(tbl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_BLOOM_MAKE</td>
          <td>(</td>
          <td class="paramtype">tbl&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a18a33f4269f05c1e81ce54edbc0ffca6"></a><!-- doxytag: member="uthash.h::HASH_BLOOM_SIGNATURE" ref="a18a33f4269f05c1e81ce54edbc0ffca6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_BLOOM_SIGNATURE&nbsp;&nbsp;&nbsp;0xb12220f2</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a06bfbf880899d54da35487d0d39c1009"></a><!-- doxytag: member="uthash.h::HASH_BLOOM_TEST" ref="a06bfbf880899d54da35487d0d39c1009" args="(tbl, hashv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_BLOOM_TEST</td>
          <td>(</td>
          <td class="paramtype">tbl, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">hashv&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;(1)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a0512b3f7a824275579ec82643ef2cc23"></a><!-- doxytag: member="uthash.h::HASH_CLEAR" ref="a0512b3f7a824275579ec82643ef2cc23" args="(hh, head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_CLEAR</td>
          <td>(</td>
          <td class="paramtype">hh, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">head&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                                                                             \
  <span class="keywordflow">if</span> (head) {                                                                    \
    <a class="code" href="uthash_8h.html#a56cdf8c254fc700332c8e6a7263b4657">uthash_free</a>((head)-&gt;hh.tbl-&gt;buckets,                                         \
                (head)-&gt;hh.tbl-&gt;num_buckets*<span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structUT__hash__bucket.html">UT_hash_bucket</a>));      \
    <a class="code" href="uthash_8h.html#a56cdf8c254fc700332c8e6a7263b4657">uthash_free</a>((head)-&gt;hh.tbl, <span class="keyword">sizeof</span>(<a class="code" href="structUT__hash__table.html">UT_hash_table</a>));                          \
    (head)=NULL;                                                                 \
  }                                                                              \
} <span class="keywordflow">while</span>(0)
</pre></div>
</div>
</div>
<a class="anchor" id="a6ea9e661cd8c35eff1fdcd5731127edd"></a><!-- doxytag: member="uthash.h::HASH_CNT" ref="a6ea9e661cd8c35eff1fdcd5731127edd" args="(hh, head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_CNT</td>
          <td>(</td>
          <td class="paramtype">hh, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">head&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;((head)?((head)-&gt;hh.tbl-&gt;num_items):0)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a7d3edf55a3ee4da1a0e1b477c314342f"></a><!-- doxytag: member="uthash.h::HASH_COUNT" ref="a7d3edf55a3ee4da1a0e1b477c314342f" args="(head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_COUNT</td>
          <td>(</td>
          <td class="paramtype">head&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;HASH_CNT(hh,head)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a48b7ed374602dcb236501aa23a971f05"></a><!-- doxytag: member="uthash.h::HASH_DEL" ref="a48b7ed374602dcb236501aa23a971f05" args="(head, delptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_DEL</td>
          <td>(</td>
          <td class="paramtype">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">delptr&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;HASH_DELETE(hh,head,delptr)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a1b2d6f694f98cf6350cdd18225cb3f78"></a><!-- doxytag: member="uthash.h::HASH_DEL_IN_BKT" ref="a1b2d6f694f98cf6350cdd18225cb3f78" args="(hh, head, hh_del)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_DEL_IN_BKT</td>
          <td>(</td>
          <td class="paramtype">hh, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">hh_del&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Valor:</b><div class="fragment"><pre class="fragment">(head).count--;                                                              \
    <span class="keywordflow">if</span> ((head).hh_head == hh_del) {                                              \
      (head).hh_head = hh_del-&gt;hh_next;                                          \
    }                                                                            \
    <span class="keywordflow">if</span> (hh_del-&gt;hh_prev) {                                                       \
        hh_del-&gt;hh_prev-&gt;hh_next = hh_del-&gt;hh_next;                              \
    }                                                                            \
    <span class="keywordflow">if</span> (hh_del-&gt;hh_next) {                                                       \
        hh_del-&gt;hh_next-&gt;hh_prev = hh_del-&gt;hh_prev;                              \
    }
</pre></div>
</div>
</div>
<a class="anchor" id="a3f83117e1108d63844a58d2d79c3b980"></a><!-- doxytag: member="uthash.h::HASH_DELETE" ref="a3f83117e1108d63844a58d2d79c3b980" args="(hh, head, delptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_DELETE</td>
          <td>(</td>
          <td class="paramtype">hh, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">delptr&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a44f9d46e2cc79652492e5dd3e6c40a15"></a><!-- doxytag: member="uthash.h::HASH_EMIT_KEY" ref="a44f9d46e2cc79652492e5dd3e6c40a15" args="(hh, head, keyptr, fieldlen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_EMIT_KEY</td>
          <td>(</td>
          <td class="paramtype">hh, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">keyptr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">fieldlen&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a6439fd6271474e61b1840fbf83132f03"></a><!-- doxytag: member="uthash.h::HASH_EXPAND_BUCKETS" ref="a6439fd6271474e61b1840fbf83132f03" args="(tbl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_EXPAND_BUCKETS</td>
          <td>(</td>
          <td class="paramtype">tbl&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="abd3356419b386c379116393700a751d3"></a><!-- doxytag: member="uthash.h::HASH_FCN" ref="abd3356419b386c379116393700a751d3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_FCN&nbsp;&nbsp;&nbsp;HASH_JEN</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ad4a1cd39c3044936c0e49d3f372c9dbf"></a><!-- doxytag: member="uthash.h::HASH_FIND" ref="ad4a1cd39c3044936c0e49d3f372c9dbf" args="(hh, head, keyptr, keylen, out)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_FIND</td>
          <td>(</td>
          <td class="paramtype">hh, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">keyptr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">keylen, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">out&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                                                                             \
  <span class="keywordtype">unsigned</span> _hf_bkt,_hf_hashv;                                                    \
  out=NULL;                                                                      \
  <span class="keywordflow">if</span> (head) {                                                                    \
     <a class="code" href="uthash_8h.html#abd3356419b386c379116393700a751d3">HASH_FCN</a>(keyptr,<a class="code" href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">keylen</a>, (head)-&gt;hh.tbl-&gt;num_buckets, _hf_hashv, _hf_bkt);   \
     <span class="keywordflow">if</span> (<a class="code" href="uthash_8h.html#a06bfbf880899d54da35487d0d39c1009">HASH_BLOOM_TEST</a>((head)-&gt;hh.tbl, _hf_hashv)) {                           \
       <a class="code" href="uthash_8h.html#a42ae87cc63106a82601808f19329502c">HASH_FIND_IN_BKT</a>((head)-&gt;hh.tbl, hh, (head)-&gt;hh.tbl-&gt;buckets[ _hf_bkt ],  \
                        keyptr,<a class="code" href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">keylen</a>,out);                                      \
     }                                                                           \
  }                                                                              \
} <span class="keywordflow">while</span> (0)
</pre></div>
</div>
</div>
<a class="anchor" id="a42ae87cc63106a82601808f19329502c"></a><!-- doxytag: member="uthash.h::HASH_FIND_IN_BKT" ref="a42ae87cc63106a82601808f19329502c" args="(tbl, hh, head, keyptr, keylen_in, out)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_FIND_IN_BKT</td>
          <td>(</td>
          <td class="paramtype">tbl, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">hh, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">keyptr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">keylen_in, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">out&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                                                                             \
 <span class="keywordflow">if</span> (head.hh_head) <a class="code" href="uthash_8h.html#a3c736f2f2dd643f2987b2bc323e269ba">DECLTYPE_ASSIGN</a>(out,<a class="code" href="uthash_8h.html#a568e95048979b8b3e4ea1567fd91c186">ELMT_FROM_HH</a>(<a class="code" href="structUT__hash__handle.html#ad2035ee3b2aa55b22e352341372a5e73">tbl</a>,head.hh_head));          \
 <span class="keywordflow">else</span> out=NULL;                                                                  \
 <span class="keywordflow">while</span> (out) {                                                                   \
    <span class="keywordflow">if</span> (out-&gt;hh.keylen == keylen_in) {                                           \
        <span class="keywordflow">if</span> ((<a class="code" href="uthash_8h.html#a35c9b682ebb7a8cbf284b9f0a9594095">HASH_KEYCMP</a>(out-&gt;hh.key,keyptr,keylen_in)) == 0) <span class="keywordflow">break</span>;             \
    }                                                                            \
    <span class="keywordflow">if</span> (out-&gt;hh.hh_next) <a class="code" href="uthash_8h.html#a3c736f2f2dd643f2987b2bc323e269ba">DECLTYPE_ASSIGN</a>(out,<a class="code" href="uthash_8h.html#a568e95048979b8b3e4ea1567fd91c186">ELMT_FROM_HH</a>(<a class="code" href="structUT__hash__handle.html#ad2035ee3b2aa55b22e352341372a5e73">tbl</a>,out-&gt;hh.hh_next)); \
    <span class="keywordflow">else</span> out = NULL;                                                             \
 }                                                                               \
} <span class="keywordflow">while</span>(0)
</pre></div>
</div>
</div>
<a class="anchor" id="aadcb19b940348f3141bd51505ede0142"></a><!-- doxytag: member="uthash.h::HASH_FIND_INT" ref="aadcb19b940348f3141bd51505ede0142" args="(head, findint, out)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_FIND_INT</td>
          <td>(</td>
          <td class="paramtype">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">findint, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">out&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;HASH_FIND(hh,head,findint,sizeof(int),out)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a26a887f8e31952034becac0cf446f6c3"></a><!-- doxytag: member="uthash.h::HASH_FIND_PTR" ref="a26a887f8e31952034becac0cf446f6c3" args="(head, findptr, out)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_FIND_PTR</td>
          <td>(</td>
          <td class="paramtype">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">findptr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">out&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;HASH_FIND(hh,head,findptr,sizeof(void *),out)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a214529083adfab2fa8cd402d2eeb0a84"></a><!-- doxytag: member="uthash.h::HASH_FIND_STR" ref="a214529083adfab2fa8cd402d2eeb0a84" args="(head, findstr, out)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_FIND_STR</td>
          <td>(</td>
          <td class="paramtype">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">findstr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">out&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;HASH_FIND(hh,head,findstr,strlen(findstr),out)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ac99f9a353421537527a80b392089dd9d"></a><!-- doxytag: member="uthash.h::HASH_FNV" ref="ac99f9a353421537527a80b392089dd9d" args="(key, keylen, num_bkts, hashv, bkt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_FNV</td>
          <td>(</td>
          <td class="paramtype">key, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">keylen, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">num_bkts, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">hashv, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bkt&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                                                                             \
  <span class="keywordtype">unsigned</span> _fn_i;                                                                \
  <span class="keywordtype">char</span> *_hf_key=(<span class="keywordtype">char</span>*)(<a class="code" href="structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d">key</a>);                                                    \
  <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> = 2166136261UL;                                                          \
  <span class="keywordflow">for</span>(_fn_i=0; _fn_i &lt; <a class="code" href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">keylen</a>; _fn_i++)                                          \
      <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> = (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> * 16777619) ^ _hf_key[_fn_i];                               \
  bkt = <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> &amp; (num_bkts-1);                                                    \
} <span class="keywordflow">while</span>(0);
</pre></div>
</div>
</div>
<a class="anchor" id="a7d882fadb26a4e6c13c134d8be4d0759"></a><!-- doxytag: member="uthash.h::HASH_FSCK" ref="a7d882fadb26a4e6c13c134d8be4d0759" args="(hh, head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_FSCK</td>
          <td>(</td>
          <td class="paramtype">hh, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">head&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a361cdc5e8d6d8fe5fae6912588ae15d0"></a><!-- doxytag: member="uthash.h::HASH_INITIAL_NUM_BUCKETS" ref="a361cdc5e8d6d8fe5fae6912588ae15d0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_INITIAL_NUM_BUCKETS&nbsp;&nbsp;&nbsp;32</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a0b39a5cf1d6c05c43bd8530db2ec908c"></a><!-- doxytag: member="uthash.h::HASH_INITIAL_NUM_BUCKETS_LOG2" ref="a0b39a5cf1d6c05c43bd8530db2ec908c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_INITIAL_NUM_BUCKETS_LOG2&nbsp;&nbsp;&nbsp;5</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a4d524042f1fcb976d8bccae9e4cc63d6"></a><!-- doxytag: member="uthash.h::HASH_ITER" ref="a4d524042f1fcb976d8bccae9e4cc63d6" args="(hh, head, el, tmp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_ITER</td>
          <td>(</td>
          <td class="paramtype">hh, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">el, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">tmp&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">for</span>((el)=(head),(tmp)=<a class="code" href="uthash_8h.html#a716ba290563c2d955cb0c90d85874073">DECLTYPE</a>(el)((head)?(head)-&gt;hh.next:NULL);                 \
  el; (el)=(tmp),(tmp)=<a class="code" href="uthash_8h.html#a716ba290563c2d955cb0c90d85874073">DECLTYPE</a>(el)((tmp)?(tmp)-&gt;hh.next:NULL))
</pre></div>
</div>
</div>
<a class="anchor" id="aa16e3ae6125d7f10d3deb4695e0ee51e"></a><!-- doxytag: member="uthash.h::HASH_JEN" ref="aa16e3ae6125d7f10d3deb4695e0ee51e" args="(key, keylen, num_bkts, hashv, bkt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_JEN</td>
          <td>(</td>
          <td class="paramtype">key, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">keylen, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">num_bkts, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">hashv, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bkt&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a6d37144e54d2bd49eb88fbfd04c59dc5"></a><!-- doxytag: member="uthash.h::HASH_JEN_MIX" ref="a6d37144e54d2bd49eb88fbfd04c59dc5" args="(a, b, c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_JEN_MIX</td>
          <td>(</td>
          <td class="paramtype">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">b, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">c&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                                                                             \
  a -= b; a -= c; a ^= ( c &gt;&gt; 13 );                                              \
  b -= c; b -= a; b ^= ( a &lt;&lt; 8 );                                               \
  c -= a; c -= b; c ^= ( b &gt;&gt; 13 );                                              \
  a -= b; a -= c; a ^= ( c &gt;&gt; 12 );                                              \
  b -= c; b -= a; b ^= ( a &lt;&lt; 16 );                                              \
  c -= a; c -= b; c ^= ( b &gt;&gt; 5 );                                               \
  a -= b; a -= c; a ^= ( c &gt;&gt; 3 );                                               \
  b -= c; b -= a; b ^= ( a &lt;&lt; 10 );                                              \
  c -= a; c -= b; c ^= ( b &gt;&gt; 15 );                                              \
} <span class="keywordflow">while</span> (0)
</pre></div>
</div>
</div>
<a class="anchor" id="a35c9b682ebb7a8cbf284b9f0a9594095"></a><!-- doxytag: member="uthash.h::HASH_KEYCMP" ref="a35c9b682ebb7a8cbf284b9f0a9594095" args="(a, b, len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_KEYCMP</td>
          <td>(</td>
          <td class="paramtype">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">b, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">len&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;memcmp(a,b,len)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aeba971430f623b6334f565d9c7ec9de5"></a><!-- doxytag: member="uthash.h::HASH_MAKE_TABLE" ref="aeba971430f623b6334f565d9c7ec9de5" args="(hh, head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_MAKE_TABLE</td>
          <td>(</td>
          <td class="paramtype">hh, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">head&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                                                                             \
  (head)-&gt;hh.tbl = (<a class="code" href="structUT__hash__table.html">UT_hash_table</a>*)<a class="code" href="uthash_8h.html#a861013aff36c0448f1888a2b0b5836d8">uthash_malloc</a>(                                \
                  <span class="keyword">sizeof</span>(<a class="code" href="structUT__hash__table.html">UT_hash_table</a>));                                        \
  <span class="keywordflow">if</span> (!((head)-&gt;hh.tbl))  { <a class="code" href="uthash_8h.html#a03b52301b0ed976b6981ef33613320c1">uthash_fatal</a>( <span class="stringliteral">&quot;out of memory&quot;</span>); }                    \
  memset((head)-&gt;hh.tbl, 0, <span class="keyword">sizeof</span>(<a class="code" href="structUT__hash__table.html">UT_hash_table</a>));                              \
  (head)-&gt;hh.tbl-&gt;tail = &amp;((head)-&gt;hh);                                          \
  (head)-&gt;hh.tbl-&gt;num_buckets = <a class="code" href="uthash_8h.html#a361cdc5e8d6d8fe5fae6912588ae15d0">HASH_INITIAL_NUM_BUCKETS</a>;                        \
  (head)-&gt;hh.tbl-&gt;log2_num_buckets = <a class="code" href="uthash_8h.html#a0b39a5cf1d6c05c43bd8530db2ec908c">HASH_INITIAL_NUM_BUCKETS_LOG2</a>;              \
  (head)-&gt;hh.tbl-&gt;hho = (<span class="keywordtype">char</span>*)(&amp;(head)-&gt;hh) - (<span class="keywordtype">char</span>*)(head);                    \
  (head)-&gt;hh.tbl-&gt;buckets = (<a class="code" href="structUT__hash__bucket.html">UT_hash_bucket</a>*)<a class="code" href="uthash_8h.html#a861013aff36c0448f1888a2b0b5836d8">uthash_malloc</a>(                      \
          <a class="code" href="uthash_8h.html#a361cdc5e8d6d8fe5fae6912588ae15d0">HASH_INITIAL_NUM_BUCKETS</a>*<span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structUT__hash__bucket.html">UT_hash_bucket</a>));               \
  <span class="keywordflow">if</span> (! (head)-&gt;hh.tbl-&gt;buckets) { <a class="code" href="uthash_8h.html#a03b52301b0ed976b6981ef33613320c1">uthash_fatal</a>( <span class="stringliteral">&quot;out of memory&quot;</span>); }             \
  memset((head)-&gt;hh.tbl-&gt;buckets, 0,                                             \
          <a class="code" href="uthash_8h.html#a361cdc5e8d6d8fe5fae6912588ae15d0">HASH_INITIAL_NUM_BUCKETS</a>*<span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structUT__hash__bucket.html">UT_hash_bucket</a>));               \
  <a class="code" href="uthash_8h.html#a254f427772a1fe7a2480a8302af8f8b8">HASH_BLOOM_MAKE</a>((head)-&gt;hh.tbl);                                               \
  (head)-&gt;hh.tbl-&gt;signature = <a class="code" href="uthash_8h.html#a4a7a46b9b92a9c73e4f9321e8e6b6bb2">HASH_SIGNATURE</a>;                                    \
} <span class="keywordflow">while</span>(0)
</pre></div>
</div>
</div>
<a class="anchor" id="abc7040b698211c1993441fb4165fa0b4"></a><!-- doxytag: member="uthash.h::HASH_OAT" ref="abc7040b698211c1993441fb4165fa0b4" args="(key, keylen, num_bkts, hashv, bkt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_OAT</td>
          <td>(</td>
          <td class="paramtype">key, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">keylen, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">num_bkts, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">hashv, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bkt&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                                                                             \
  <span class="keywordtype">unsigned</span> _ho_i;                                                                \
  <span class="keywordtype">char</span> *_ho_key=(<span class="keywordtype">char</span>*)(<a class="code" href="structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d">key</a>);                                                    \
  <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> = 0;                                                                     \
  <span class="keywordflow">for</span>(_ho_i=0; _ho_i &lt; <a class="code" href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">keylen</a>; _ho_i++) {                                        \
      <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> += _ho_key[_ho_i];                                                   \
      <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> += (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> &lt;&lt; 10);                                                    \
      <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> ^= (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> &gt;&gt; 6);                                                     \
  }                                                                              \
  <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> += (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> &lt;&lt; 3);                                                         \
  <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> ^= (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> &gt;&gt; 11);                                                        \
  <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> += (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> &lt;&lt; 15);                                                        \
  bkt = <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> &amp; (num_bkts-1);                                                    \
} <span class="keywordflow">while</span>(0)
</pre></div>
</div>
</div>
<a class="anchor" id="aa4cb140b45415e7bf57237525388af79"></a><!-- doxytag: member="uthash.h::HASH_SAX" ref="aa4cb140b45415e7bf57237525388af79" args="(key, keylen, num_bkts, hashv, bkt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_SAX</td>
          <td>(</td>
          <td class="paramtype">key, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">keylen, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">num_bkts, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">hashv, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bkt&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                                                                             \
  <span class="keywordtype">unsigned</span> _sx_i;                                                                \
  <span class="keywordtype">char</span> *_hs_key=(<span class="keywordtype">char</span>*)(<a class="code" href="structUT__hash__handle.html#a40690fc15aeaeba8f25385f05f84dd4d">key</a>);                                                    \
  <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> = 0;                                                                     \
  <span class="keywordflow">for</span>(_sx_i=0; _sx_i &lt; <a class="code" href="structUT__hash__handle.html#af2abdc405972a6bbdee2ade2c0f346c4">keylen</a>; _sx_i++)                                          \
      <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> ^= (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> &lt;&lt; 5) + (<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> &gt;&gt; 2) + _hs_key[_sx_i];                     \
  bkt = <a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a> &amp; (num_bkts-1);                                                    \
} <span class="keywordflow">while</span> (0)
</pre></div>
</div>
</div>
<a class="anchor" id="ad190366f7a476ece79bd628240a5fc93"></a><!-- doxytag: member="uthash.h::HASH_SELECT" ref="ad190366f7a476ece79bd628240a5fc93" args="(hh_dst, dst, hh_src, src, cond)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_SELECT</td>
          <td>(</td>
          <td class="paramtype">hh_dst, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">dst, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">hh_src, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">src, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cond&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ab595698a74642684dace0dfa47dab445"></a><!-- doxytag: member="uthash.h::HASH_SFH" ref="ab595698a74642684dace0dfa47dab445" args="(key, keylen, num_bkts, hashv, bkt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_SFH</td>
          <td>(</td>
          <td class="paramtype">key, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">keylen, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">num_bkts, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">hashv, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bkt&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a4a7a46b9b92a9c73e4f9321e8e6b6bb2"></a><!-- doxytag: member="uthash.h::HASH_SIGNATURE" ref="a4a7a46b9b92a9c73e4f9321e8e6b6bb2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_SIGNATURE&nbsp;&nbsp;&nbsp;0xa0111fe1</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a88d2ab40956878caacd02c214f7e8f15"></a><!-- doxytag: member="uthash.h::HASH_SORT" ref="a88d2ab40956878caacd02c214f7e8f15" args="(head, cmpfcn)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_SORT</td>
          <td>(</td>
          <td class="paramtype">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cmpfcn&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;HASH_SRT(hh,head,cmpfcn)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a388b4071dcff005154f431d3d3025fbd"></a><!-- doxytag: member="uthash.h::HASH_SRT" ref="a388b4071dcff005154f431d3d3025fbd" args="(hh, head, cmpfcn)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_SRT</td>
          <td>(</td>
          <td class="paramtype">hh, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cmpfcn&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a4d7691544128a6ef265f3e4fa5ed3113"></a><!-- doxytag: member="uthash.h::HASH_TO_BKT" ref="a4d7691544128a6ef265f3e4fa5ed3113" args="(hashv, num_bkts, bkt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_TO_BKT</td>
          <td>(</td>
          <td class="paramtype">hashv, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">num_bkts, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bkt&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> {                                                                             \
  bkt = ((<a class="code" href="structUT__hash__handle.html#aae5e635fa110556e5007f627089f8323">hashv</a>) &amp; ((num_bkts) - 1));                                            \
} <span class="keywordflow">while</span>(0)
</pre></div>
</div>
</div>
<a class="anchor" id="a86ea78714da520989a6f7a764b4d71b4"></a><!-- doxytag: member="uthash.h::uthash_expand_fyi" ref="a86ea78714da520989a6f7a764b4d71b4" args="(tbl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define uthash_expand_fyi</td>
          <td>(</td>
          <td class="paramtype">tbl&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a03b52301b0ed976b6981ef33613320c1"></a><!-- doxytag: member="uthash.h::uthash_fatal" ref="a03b52301b0ed976b6981ef33613320c1" args="(msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define uthash_fatal</td>
          <td>(</td>
          <td class="paramtype">msg&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;exit(-1)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a56cdf8c254fc700332c8e6a7263b4657"></a><!-- doxytag: member="uthash.h::uthash_free" ref="a56cdf8c254fc700332c8e6a7263b4657" args="(ptr, sz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define uthash_free</td>
          <td>(</td>
          <td class="paramtype">ptr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">sz&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;free(ptr)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a861013aff36c0448f1888a2b0b5836d8"></a><!-- doxytag: member="uthash.h::uthash_malloc" ref="a861013aff36c0448f1888a2b0b5836d8" args="(sz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define uthash_malloc</td>
          <td>(</td>
          <td class="paramtype">sz&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;malloc(sz)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a7cc237d8f87de3836b5390856cfc5c86"></a><!-- doxytag: member="uthash.h::uthash_noexpand_fyi" ref="a7cc237d8f87de3836b5390856cfc5c86" args="(tbl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define uthash_noexpand_fyi</td>
          <td>(</td>
          <td class="paramtype">tbl&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aa56cef9cb86dc1f4b5d27ee3a691077e"></a><!-- doxytag: member="uthash.h::UTHASH_VERSION" ref="aa56cef9cb86dc1f4b5d27ee3a691077e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define UTHASH_VERSION&nbsp;&nbsp;&nbsp;1.9.3</td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Documentación de los tipos definidos</h2>
<a class="anchor" id="a3ba3da0ca59a082c35a0d6b52e803ddf"></a><!-- doxytag: member="uthash.h::UT_hash_bucket" ref="a3ba3da0ca59a082c35a0d6b52e803ddf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structUT__hash__bucket.html">UT_hash_bucket</a>  <a class="el" href="structUT__hash__bucket.html">UT_hash_bucket</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a0e3a99ed9f776349720d0c362f956fb6"></a><!-- doxytag: member="uthash.h::UT_hash_handle" ref="a0e3a99ed9f776349720d0c362f956fb6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structUT__hash__handle.html">UT_hash_handle</a>  <a class="el" href="structUT__hash__handle.html">UT_hash_handle</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a0758074b9942c2ad076610b3e0ce548e"></a><!-- doxytag: member="uthash.h::UT_hash_table" ref="a0758074b9942c2ad076610b3e0ce548e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structUT__hash__table.html">UT_hash_table</a>  <a class="el" href="structUT__hash__table.html">UT_hash_table</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>Todo</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Estructuras de Datos</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Archivos</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Funciones</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Tipos definidos</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Definiciones</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr class="footer"/><address style="text-align: right;"><small>Generado el Mon Jun 6 20:15:28 2011 para dinic por&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
